package ar.com.sgsvm.dao;

public abstract class DaoFactory {

	public static final int SQLITE = 0;

	public static DaoFactory getDaoFactory(int which) {
		switch (which) {
		case SQLITE:
			return new SqliteDaoFactory();
		default:
			break;
		}
		return null;
	}

	public abstract Object open() throws Exception;

	public abstract void close() throws Exception;

	public abstract void reset() throws Exception;

	public abstract void beginTransaction() throws Exception;

	public abstract void commit() throws Exception;

	public abstract void rollback() throws Exception;

	public abstract void backup() throws Exception;

	public abstract void restore() throws Exception;

	public abstract IArticuloDao getArticuloDao();

	public abstract IClienteDao getClienteDao();

	public abstract IFacturaDao getFacturaDao();

	public abstract ILineaFacturaDao getLineaFacturaDao();

	public abstract ILocalidadDao getLocalidadDao();

	public abstract IPrecioDao getPrecioDao();

	public abstract IProvinciaDao getProvinciaDao();

	public abstract ITipoArticuloDao getTipoArticuloDao();

	public abstract ITipoUsuarioDao getTipoUsuarioDao();

	public abstract IUsuarioDao getUsuarioDao();

}
